package br.consultorio.digital.dao;

import java.util.ArrayList;

import android.app.Activity;
import br.consultorio.digital.modelo.entidade.Medico;

public class DAOMedico extends DAO {

	// private Activity activityAtividadeData;
	private static DAOMedico instance;

	public static DAOMedico getInstance(Activity context) {
		if (instance == null) {
			synchronized (DAOMedico.class) {

				if (instance == null) {
					instance = new DAOMedico();
					abrecriaBanco(context);
				}
			}
		}
		return instance;
	}

	public ArrayList<Object> consultarNm_Medico(String medico) {
		setCursor(getDatabase().query(
				"tb_medico as m",
				new String[] { "distinct m.id_medico", "m.nm_medico",
						"m.CD_Crm", "m.SG_UFCrm", "IN_Horario_Personalizado",
						"m.IN_Ativo" }, "m.nm_medico like '%" + medico + "%'",
				null, null, null, "m.nm_medico"));

		ArrayList<Object> ap = new ArrayList<Object>();

		while (getCursor().moveToNext()) {
			ap.add(getMedico());
		}

		fechaBanco();
		return ap;
	}

	public ArrayList<Object> consultarTodos() {
		setCursor(getDatabase().query(
				"tb_medico as m",
				new String[] { "distinct m.id_medico", "m.nm_medico",
						"m.CD_Crm", "m.SG_UFCrm", "IN_Horario_Personalizado",
						"m.IN_Ativo" }, null, null, null, null, "m.nm_medico"));

		ArrayList<Object> ap = new ArrayList<Object>();

		while (getCursor().moveToNext()) {
			ap.add(getMedico());
		}

		fechaBanco();
		return ap;
	}

	private Medico getMedico() {
		Medico m = new Medico();

		m.setId_medico(getCursor().getInt(
				getCursor().getColumnIndexOrThrow("ID_Medico")));

		m.setNm_medico(getCursor().getString(
				getCursor().getColumnIndexOrThrow("NM_Medico")));

		m.setCd_crm(getCursor().getString(
				getCursor().getColumnIndexOrThrow("CD_Crm")));

		m.setSg_ufcrm(getCursor().getString(
				getCursor().getColumnIndexOrThrow("SG_UFCrm")));

		m.setIn_horario_personalizado(getCursor().getInt(
				getCursor().getColumnIndexOrThrow("IN_Horario_Personalizado")));

		m.setIn_ativo(getCursor().getInt(
				getCursor().getColumnIndexOrThrow("IN_Ativo")));

		return m;
	}
}
